package common

import (
	"errors"
	"net"
)

// 自定义一些错误
var (
	ErrAccept          = errors.New("accept error")
	ErrRead            = errors.New("readHead error")
	ErrParseHead       = errors.New("praseHead error")
	ErrReadBody        = errors.New("readBody error")
	ErrFindHandlerFunc = errors.New("findHandlerFunc error")
	ErrOutMsgEmpty     = errors.New("outMsgEmpty error")
	ErrMsgCopy         = errors.New("copySize not equal error")
)

//定义各种结构，解决包的循环引用问题

type SessionItem struct {
	Conn      net.Conn //直接用接口
	Uuid      string
	AliveTime int64
	ForHashId int //这是一个整型，可用于将该连接的信息都放到同一个队列中去处理
}

// 包头结构
type PackageHead struct {
	PkgId      uint16 //为了提高网络库的兼容性-就不要这个了，交由
	PkgBodyLen uint32
}

// 收发的结构体数据
type PackageStruct struct {
	Head *PackageHead
	Body []byte //字节流数据
}

// 放入消息队列的接收
type MsgQueueItem struct {
	ConSessionItem *SessionItem
	TruePackage    *PackageStruct
}
